package com.hpli.infrastructure.persistent.po;

import java.math.BigDecimal;
import java.util.Date;

/**
 * Table: raffle_activity_order_000
 */
public class RaffleActivityOrder {
    /**
     * Column: id
     * Type: BIGINT UNSIGNED
     * Remark: 自增ID
     */
    private Long id;

    /**
     * Column: user_id
     * Type: VARCHAR(32)
     * Remark: 用户ID
     */
    private String userId;

    /**
     * Column: sku
     * Type: BIGINT
     * Remark: 商品sku
     */
    private Long sku;

    /**
     * Column: activity_id
     * Type: BIGINT
     * Remark: 活动ID
     */
    private Long activityId;

    /**
     * Column: activity_name
     * Type: VARCHAR(64)
     * Remark: 活动名称
     */
    private String activityName;

    /**
     * Column: strategy_id
     * Type: BIGINT
     * Remark: 抽奖策略ID
     */
    private Long strategyId;

    /**
     * Column: order_id
     * Type: VARCHAR(12)
     * Remark: 订单ID
     */
    private String orderId;

    /**
     * Column: order_time
     * Type: DATETIME
     * Remark: 下单时间
     */
    private Date orderTime;

    /**
     * Column: total_count
     * Type: INT
     * Remark: 总次数
     */
    private Integer totalCount;

    /**
     * Column: day_count
     * Type: INT
     * Remark: 日次数
     */
    private Integer dayCount;

    /**
     * Column: month_count
     * Type: INT
     * Remark: 月次数
     */
    private Integer monthCount;

    /**
     * Column: state
     * Type: VARCHAR(16)
     * Default value: complete
     * Remark: 订单状态（complete）
     */
    private String state;

    /**
     * Column: out_business_no
     * Type: VARCHAR(64)
     * Remark: 业务仿重ID - 外部透传的，确保幂等
     */
    private String outBusinessNo;

    /**
     * Column: create_time
     * Type: DATETIME
     * Default value: CURRENT_TIMESTAMP
     * Remark: 创建时间
     */
    private Date createTime;

    /**
     * Column: update_time
     * Type: DATETIME
     * Default value: CURRENT_TIMESTAMP
     * Remark: 更新时间
     */
    private Date updateTime;

    /**
     * Column: pay_amount
     * Type: VARCHAR(32)
     * Remark: 支付金额
     */
    private BigDecimal payAmount;

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId == null ? null : userId.trim();
    }

    public Long getSku() {
        return sku;
    }

    public void setSku(Long sku) {
        this.sku = sku;
    }

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public String getActivityName() {
        return activityName;
    }

    public void setActivityName(String activityName) {
        this.activityName = activityName == null ? null : activityName.trim();
    }

    public Long getStrategyId() {
        return strategyId;
    }

    public void setStrategyId(Long strategyId) {
        this.strategyId = strategyId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId == null ? null : orderId.trim();
    }

    public Date getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(Date orderTime) {
        this.orderTime = orderTime;
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }

    public Integer getDayCount() {
        return dayCount;
    }

    public void setDayCount(Integer dayCount) {
        this.dayCount = dayCount;
    }

    public Integer getMonthCount() {
        return monthCount;
    }

    public void setMonthCount(Integer monthCount) {
        this.monthCount = monthCount;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state == null ? null : state.trim();
    }

    public String getOutBusinessNo() {
        return outBusinessNo;
    }

    public void setOutBusinessNo(String outBusinessNo) {
        this.outBusinessNo = outBusinessNo == null ? null : outBusinessNo.trim();
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}